package com.haina.shop.service;

import com.haina.shop.domain.Basket;
import com.baomidou.mybatisplus.extension.service.IService;
import com.haina.shop.dto.ChangeItemDTO;
import com.haina.shop.result.ServiceResult;
import com.haina.shop.vo.ShoppingCartTotalVO;
import com.haina.shop.vo.ShoppingCartVO;

import java.util.List;

/**
* @author 48077
* @description 针对表【tz_basket(购物车)】的数据库操作Service
* @createDate 2024-07-31 18:34:29
*/
public interface BasketService extends IService<Basket> {
    /**
     * 获取当前用户购物车商品数量
     */
    ServiceResult<Long> getShoppingCartCount();
    /**
     * 获取当前用户的购物车信息
     */
    ServiceResult<List<ShoppingCartVO>> getInfoByUserId();
    /**
     * 获取当前用户选中购物项总计、选中的商品数量,参数为购物车id数组
     */
    ServiceResult<ShoppingCartTotalVO> getTotalPay();
    /**
     * 通过商品id(prodId)、skuId、店铺Id(shopId),添加/修改用户购物车商品，
     * 并传入改变的商品个数(count)，当count为正值时，
     * 增加商品数量，当count为负值时，将减去商品的数量，
     * 当最终count值小于0时，会将商品从购物车里面删除
     * @param dto
     */
    ServiceResult changeItem(ChangeItemDTO dto);
    /**
     * 通过购物车id删除用户购物车物品
     * @param integers
     */
    ServiceResult deleteItem(List<Long> integers);
}
